
package com.bookocean.infrastructure.persistence.po;

import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.time.LocalDateTime;

/**
 * 用户信息实体类
 *
 * @author 简语
 * @since 2025-01-27
 */
@Data
@TableName("user_info_po")
public class UserInfoPO {

    /**
     * 用户ID（自增主键）
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    /**
     * 微信 OpenID
     */
    @TableField("openid")
    private String openid;

    /**
     * 密钥
     */
    @TableField("session_key")
    private String sessionKey;

    /**
     * 用户昵称
     */
    @TableField("nick_name")
    private String nickName;

    /**
     * 用户头像URL
     */
    @TableField("avatar_url")
    private String avatarUrl;

    /**
     * 性别（0：未知，1：男，2：女）
     */
    @TableField("gender")
    private Integer gender;

    /**
     * 国家
     */
    @TableField("country")
    private String country;

    /**
     * 省份
     */
    @TableField("province")
    private String province;

    /**
     * 城市
     */
    @TableField("city")
    private String city;

    /**
     * 语言
     */
    @TableField("language")
    private String language;

    /**
     * 用户等级（默认1级）
     */
    @TableField("level")
    private Integer level;

    /**
     * 用户称号
     */
    @TableField("title")
    private String title;

    /**
     * 阅读天数
     */
    @TableField("reading_days")
    private Integer readingDays;

    /**
     * 总阅读书籍数
     */
    @TableField("total_books")
    private Integer totalBooks;

    /**
     * 总发布书摘数
     */
    @TableField("total_posts")
    private Integer totalPosts;

    /**
     * 总获赞数
     */
    @TableField("total_likes")
    private Integer totalLikes;

    /**
     * 总评论数
     */
    @TableField("total_comments")
    private Integer totalComments;

    /**
     * 个性签名
     */
    @TableField("signature")
    private String signature;

    /**
     * 创建时间
     */
    @TableField("create_time")
    private LocalDateTime createTime;

    /**
     * 更新时间
     */
    @TableField("update_time")
    private LocalDateTime updateTime;

    /**
     * 最后登录时间
     */
    @TableField("last_login_time")
    private LocalDateTime lastLoginTime;

    /**
     * 状态（0：禁用，1：正常）
     */
    @TableField("status")
    private Integer status;
}